<?php

interface LikeMVC_Controller_Interface {
	
	public function setRequest($request);
	
	public function getRequest();
	
	/**
	 * Lifecycle callback method
	 * Called just after the controller has been initialized
	 * You should do some variables initialization only
	 */
	public function init();
	
	/**
	 * Lifecycle callback method
	 * Called before the request is dispatched
	 * You should do some filterings/validations only
	 */
	public function preDispatch();
	
	/**
	 * Lifecycle callback method
	 * Dispatch the request
	 */
	public function dispatch($task);
	
	/**
	 * Lifecycle callback method
	 * Called after the request is dispatched
	 * You should do some stuffs which are common in all request
	 */
	public function postDispatch();
	
	/**
	 * Lifecycle callback method
	 * Called just before the request finished
	 */
	public function destroy();
}

?>